#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include"gestion_malade.h"
#include"menu.h"


void saisir_malade(malade *M)
{
 printf("donner le nom du malade\n");
 scanf("%s",(*M).nom);
 printf("donner le prenom du malade\n");
 scanf("%s",(*M).prenom);
 printf("donner l'age du malade\n");
 scanf("%d",&(*M).age);
 printf("donner l'identifiant du malade\n");
 scanf("%d",&(*M).identifiant);
}


int recherche(malade *M)
{
 char x[20] ,y[20];
 int z,t;
 FILE *F;
 F=fopen("chemin.txt","r");
 if(F!=NULL)
 while(fscanf(F,"%s %s %d %d",x,y,&z,&t)!=EOF)
 {
  if((*M).identifiant==t)
  return 1;
 }
 else printf("votre fichier n existe pas");
 fclose(F);
return 0;
}


void ajout_malade(malade *M)
{
 FILE *F;
 saisir_malade(M);
 if(recherche(M)==1) 
 printf("ce malade existe deja\n");
 else
  {
   F=fopen("chemin.txt","a");
   if (F!=NULL)
    {
     fprintf(F,"%s %s %d %d\n",(*M).nom,(*M).prenom,(*M).age,(*M).identifiant);
     printf("le malade a été ajouté\n");
    } 
   else printf("votre fichier n existe pas");
fclose(F);
  }
}


void suppression_malade(malade *M)
{
 char x[20] ,y[20];
 int test=0,z,t;
 FILE *F, *T;
 F=fopen("chemin.txt","r");
 T=fopen("chemin1.txt","w");
 if(F!=NULL)
 {
  saisir_malade(M);
  while(fscanf(F,"%s %s %d %d",x,y,&z,&t)!=EOF)
  {
   if((*M).identifiant!=t)
   fprintf(T,"%s %s %d %d\n",x,y,z,t);
   else test=1;
  }
  if (test==0)
  printf("ce malade n'existe pas\n");
  else
  printf("le malade a été supprimé\n");
 }
 else printf("votre fichier n existe pas");
 fclose(F);
 fclose(T);
 remove("chemin.txt");
 rename("chemin1.txt","chemin.txt");
}


void modification_malade(malade *M)
{
 char x[20] ,y[20];
 int test=0,z,t;
 FILE *F, *T;
 malade *A;
 A=malloc(sizeof(malade)); 
 F=fopen("chemin.txt","r");
 T=fopen("chemin2.txt","w");
 if(F!=NULL)
 {
  printf("donner l'identifiant du malade a modifier ");
  scanf("%d",&(*M).identifiant);
  while(fscanf(F,"%s %s %d %d",x,y,&z,&t)!=EOF)
  {
  if((*M).identifiant==t)
  {
   printf("donner le nom du malade\n");fflush(stdin);
   scanf("%s",(*A).nom);
   printf("donner le prenom du malade\n");fflush(stdin);
   scanf("%s",(*A).prenom);
   printf("donner l'age du malade\n");fflush(stdin);
   scanf("%d",&(*A).age);
   (*A).identifiant=(*M).identifiant;
   fprintf(T,"%s %s %d %d\n",(*A).nom,(*A).prenom,(*A).age,(*A).identifiant);
   test=1;
  }
  else 
  fprintf(T,"%s %s %d %d\n",x,y,z,t);
  }
  if (test==0)
  printf("ce malade n'existe pas\n");
  else printf("les données du malade ont été modifié\n");
 }
 else printf("votre fichier n existe pas");
 fclose(F);
 fclose(T);
 remove("chemin.txt");
 rename("chemin2.txt","chemin.txt");
}

int gestion_malade(void)
 {
 malade *M;
 int c,k;
 char x[100];
 M=malloc(sizeof(malade));
 do
 {
 printf("1-Pour ajouter un malade tapez 1\n");
 printf("2-Pour supprimer un malade tapez 2\n");
 printf("3-Pour modifier les données d'un malade tapez 3\n");
 printf("4-Pour sortir tapez 4\n");
 printf("5-Pour retourner tapez 5\n");
 scanf("%s",x);
 c=atoi(x);
 switch(c)
 {
  case 1:
  {ajout_malade(M);
   printf("********************************************************************************\n");}
  break;
  case 2:
  {suppression_malade(M);
   printf("********************************************************************************\n");}
  break;
  case 3:
  {modification_malade(M);
   printf("********************************************************************************\n");}
  break;
  case 4:
  break;
  case 5: return 1;

  default:
  printf("******************* votre choix est faux veuillez repeter svp ******************\n");
  break;
 }
 printf("********************************************************************************\n");
 }while((c!=4)&&(k!=1));
return k;
}







